package com.iatinspur.learn;

/**
 *   两个名词
 *   【操作数栈】与【局部变量表】
 *
 */
public class Learn_5_JVM {
    public final static  String a1 = "abc";

    public final static  String a2 = "abc";

    public final static  String abc = "abc";

    public static void main(String[] args) {
        int i = 1;

        int j = 2;

        int k = 3;

        i = i++;

        j = j+1;

        k += 1;


        /**
         *  0 iconst_1                   【操作数栈】 申明一个1
         *  1 istore_1                   【操作数栈】中的数据  存在【局部变量表】 下角标 1中
         *  2 iconst_2                   【操作数栈】 申明一个2
         *  3 istore_2                   【操作数栈】中的数据  存在【局部变量表】 下角标 2中
         *  4 iconst_3                   【操作数栈】 申明一个3
         *  5 istore_3                   【操作数栈】中的数据 存在【局部变量表】 下角标 3中
         *  6 iload_1                    从【局部变量表】下角标 1中 复制一份数据到【操作数栈】
         *  7 iinc 1 by 1                在【局部变量表】下角标 1中 进行加1操作
         * 10 istore_1                   【操作数栈】中的数据  存在【局部变量表】 下角标 1中  存入前 【操作数栈】的数据是1  【局部变量表】下角标1的数据是2 【这就是为啥 i = i++ i没有变化的原因】
         * 11 iload_2                    从【局部变量表】下角标 2中 复制一份数据到【操作数栈】
         * 12 iconst_1                   【操作数栈】 申明一个1  此时【操作数栈】 是[1,2]
         * 13 iadd                       【操作数栈】 执行+法操作 此时 【操作数栈】是[3]
         * 14 istore_2                   【操作数栈】中的数据  存在【局部变量表】 下角标 2中   此时【局部变量表】下角标2 数据是3
         * 15 iinc 3 by 1                 在【局部变量表】下角标 3中 进行加1操作     此时【局部变量表】下角标3 数据是4
         * 18 return
         */





    }

}
